A pseudo-random noise (PN) code sequence is a binary sequence that repeats itself after a large number of cycles. Thus, the binary numbers in the sequence are not truly random, but if the repetition cycle of the sequence is long enough its spectrum shares many of the properties of random electromagnetic noise. PN codes have a variety of uses in modern electronics. They are used in everything from GPS receivers to spread spectrum handsets in wireless and cellular phones.
As the speed and bandwidth of communication devices have increased, it has become necessary to generate the PN codes at an ever increasing speed. When PN codes are used in spread spectrum systems, the PN code is typically generated at a speed several times greater than the bandwidth of the signal. The speed of the PN code is related to the amount of data transmitted on a signal. However, the speed of the hardware used to generate certain types of PN codes has not kept up with the speed of other areas in a communications device. For example, a communications device may be designed to transmit and receive a signal having a bandwidth of 800 MHz in BPSK modulation. A PN code is typically generated at a rate substantially higher than the modulated signal. Generating a PN code at this rate can be extremely challenging.
Standard PN generators typically advance one state of a PN sequence every clock cycle. Thus, a bottleneck may occur in spread spectrum communication devices due to the low speed of the PN code generation circuitry relative to the speed of the communications device.
One method for increasing the speed of PN code production is to use several PN code generators in parallel. By placing four PN code generators in parallel, it may be possible to generate a PN code up to four times as fast. However, due to the nature of the PN code, it is desirable to be able to alter the generated code in a number of ways. For example, in order to synchronize a PN code on an incoming signal with a PN code generated at the receiver, the PN code at the receiver may be delayed for a predetermined number of chips. Simply combining multiple PN generators together to generate PN codes at an increased rate can severely limit the usefulness and flexibility of the parallel generated PN code. For instance, a PN generator comprised of four PN generators multiplexed together cannot be delayed by any predetermined number of chips by simply delaying each of the PN generators by ¼ of the predetermined delay.